数字String类型 转换精度问题

您所在的位置:网站首页 java double乘以int 数字String类型 转换精度问题

数字String类型 转换精度问题

2024-07-14 05:23| 来源: 网络整理| 查看: 265

问题:一个double数字的字符串,我乘以100后,使用String.valueOf会丢失精度。

解决:百度后,像这种double类型精度问题,使用BigDecimal对象处理是最理想的。

String s = "2.112"; BigDecimal temp = BigDecimal.valueOf(Double.valueOf(s)); // 将temp乘以100 temp = temp.multiply(BigDecimal.valueOf(100)); double sum = temp.doubleValue(); System.out.println(sum); 参考链接:https://blog.csdn.net/sinat_35717984/article/details/81144981

注意:BigDecimal temp = BigDecimal.valueOf(Double.valueOf(s));

该句中BigDecimal对象的获取,传入的参数为String时,可以new一个对象返回。(BigDecimal temp = new BigDecimal(s))

但是如果传入的参数是double时,只能使用BigDecimal.valueOf(double),因为double类型转换时有着不可预知性,也会导致精度丢失。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3